﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestionePolveriLib.Facades;
using GestionePolveriLib.BL;

namespace GestionePolveri2
{
    public partial class NewColoreDialog : Form
    {
        private Colore data = null;

        public Colore Colore
        {
            get { return data; }
            set { data = value; }
        }

        public NewColoreDialog()
        {
            InitializeComponent();

            LoadFamiglieColori(false);
        }

        private void LoadFamiglieColori(bool selectLast)
        {
            FamigliaColoriFacade fcf = new FamigliaColoriFacade();
            fcf.LoadAsync((result) =>
            {
                this.dynCmbFamigliaColore.DisplayMember = "Descrizione";
                this.dynCmbFamigliaColore.ValueMember = "ID";
                this.dynCmbFamigliaColore.DataSource = result;
            });
        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(this.dynCodiceColoreTextBox.Text))
                {
                    MessageBox.Show("Indicare un codice colore !", "Gestione Polveri", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (dynCmbFamigliaColore.SelectedValue == null)
                {
                    MessageBox.Show("Indicare una Famiglia colore !", "Gestione Polveri", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                ColoriFacade impf = new ColoriFacade();
                data = new Colore();
                data.CodiceColore = this.dynCodiceColoreTextBox.Text;
                data.Descrizione = this.dynDescrizioneTextBox.Text;
                data.Note = this.dynNoteTextBox.Text;
                data.Famiglia = (FamigliaColore)this.dynCmbFamigliaColore.SelectedValue;

                impf.Add(data);

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("Errore:", ex.Message), "Gestione Polveri", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
